/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/
#include <iostream>
#include <string>
#include <vector>
#include <cctype>
#include <clocale>
#include <codecvt>

bool is_upper_cyrillic(wchar_t c) {
    return (c >= L'А' && c <= L'Я') || (c >= L'Ё' && c <= L'Ю');
}

void analyze_text(const std::wstring& text) {
    // Разбиваем текст на слова
    std::vector<std::wstring> words;
    std::wistringstream iss(text);
    std::wstring word;
    while (iss >> word) {
        words.push_back(word);
    }

    // Выводим общее количество слов
    std::cout << "Количество слов: " << words.size() << std::endl;

    int upper_case_words = 0;
    int upper_case_cyrillic_words = 0;
    int words_with_hyphen = 0;
    int short_words = 0;

    // Проходимся по всем словам и считаем нужные статистики
    for (const auto& word : words) {
        if (std::iswupper(word[0])) {
            upper_case_words++;
        }

        if (is_upper_cyrillic(word[0])) {
            upper_case_cyrillic_words++;
        }

        if (word.size() < 3) {
            short_words++;
        }

        if (word.find(L'-') != std::wstring::npos) {
            words_with_hyphen++;
        }
    }

    std::cout << "Количество слов с заглавной латиницей: " << upper_case_words << std::endl;
    std::cout << "Количество слов с заглавной кириллицей: " << upper_case_cyrillic_words << std::endl;
    std::cout << "Количество слов меньше 3 букв: " << short_words << std::endl;
    std::cout << "Количество слов с дефисом: " << words_with_hyphen << std::endl;
}

int main() {
    std::wstring text;
    std::wcout << L"Введите текст: ";
    std::getline(std::wcin, text);
    analyze_text(text);
    return 0;
}

